home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Hyper / K-L / LSC HYPER XCMD.cpt / XCmd.h < prev    next >
Text File  |  1987-10-30  |  4KB  |  108 lines

  1. /*
  2.     HyperXCmd.h  Definitions for calling all standard 
  3.     HyperCard callback routines from C.
  4.     ©Apple Computer, Inc. 1987
  5.     All Rights Reserved.
  6.  
  7.     See CFlash.C for an example of how to include this module in your 
  8.     C program.
  9. */
  10.  
  11.  
  12. typedef    long    extended;
  13.  
  14.  
  15. typedef struct XCmdBlock {
  16.     short    paramCount;     
  17.     Handle  params[16];
  18.     Handle  returnValue;      
  19.     Boolean    passFlag; 
  20.       
  21.     ProcPtr    entryPoint;    /* to call back to HyperCard */
  22.     short    request;  
  23.     short    result;  
  24.     long    inArgs[8];
  25.     long    outArgs[4];
  26.    } XCmdBlock, *XCmdBlockPtr;
  27.    
  28. typedef struct Str31 {
  29.     char    guts[32];
  30.     } Str31, *Str31Ptr;
  31.  
  32.   /*result codes */
  33. #define    xresSucc         0
  34. #define    xresFail         1 
  35. #define    xresNotImp         2 
  36.   
  37.   /* request codes */
  38. #define    xreqSendCardMessage        1 
  39. #define    xreqEvalExpr            2 
  40. #define    xreqStringLength        3 
  41. #define    xreqStringMatch            4 
  42. #define xreqSendHCMessage        5
  43. #define    xreqZeroBytes             6 
  44. #define    xreqPasToZero            7 
  45. #define    xreqZeroToPas            8 
  46. #define    xreqStrToLong            9 
  47. #define    xreqStrToNum            10 
  48. #define    xreqStrToBool            11 
  49. #define    xreqStrToExt            12 
  50. #define    xreqLongToStr            13 
  51. #define    xreqNumToStr            14 
  52. #define    xreqNumToHex            15 
  53. #define    xreqBoolToStr            16 
  54. #define    xreqExtToStr            17 
  55. #define    xreqGetGlobal            18 
  56. #define    xreqSetGlobal            19 
  57. #define    xreqGetFieldByName        20 
  58. #define    xreqGetFieldByNum        21 
  59. #define    xreqGetFieldByID        22 
  60. #define    xreqSetFieldByName        23 
  61. #define    xreqSetFieldByNum        24 
  62. #define    xreqSetFieldByID        25 
  63. #define    xreqStringEqual           26 
  64. #define    xreqReturnToPas           27 
  65. #define    xreqScanToReturn          28 
  66. #define    xreqScanToZero            39   /* was suppose to be 29!  Oops! */
  67.  
  68.  
  69. /* Forward definitions of glue routines.  Main program 
  70.     must include XCmdGlue.inc.c.  See XCmdGlue.inc.c for 
  71.     documentation of each routine.  */
  72. typedef void (*MyProcPtr) ();
  73.  
  74. pascal void SendCardMessage(XCmdBlockPtr,StringPtr msg);
  75. pascal Handle EvalExpr(XCmdBlockPtr paramPtr,StringPtr expr);
  76. pascal long StringLength(XCmdBlockPtr paramPtr,StringPtr strPtr);
  77. pascal Ptr StringMatch(XCmdBlockPtr,StringPtr pattern,StringPtr target);
  78.     
  79. pascal void ZeroBytes(XCmdBlockPtr,Ptr dstPtr,long longCount);
  80. pascal Handle PasToZero(XCmdBlockPtr,StringPtr pasStr);
  81. pascal void ZeroToPas(XCmdBlockPtr,char *zeroStr,StringPtr pasStr);
  82.  
  83. pascal long StrToLong(XCmdBlockPtr,Str31 *strPtr);
  84. pascal long StrToNum(XCmdBlockPtr,Str31 *str);
  85. pascal Boolean StrToBool(XCmdBlockPtr,Str31 *str);
  86. pascal void StrToExt(XCmdBlockPtr,Str31 *str,extended *myext);
  87.  
  88. pascal void LongToStr(XCmdBlockPtr,long posNum,Str31 *mystr);
  89. pascal void NumToStr(XCmdBlockPtr,long num,Str31 *mystr);
  90. pascal void NumToHex(XCmdBlockPtr,long num,short nDigits,Str31 *mystr);
  91. pascal void BoolToStr(XCmdBlockPtr,Boolean,Str31 *);
  92. pascal void ExtToStr(XCmdBlockPtr,extended *,Str31 *);
  93.  
  94. pascal Handle GetGlobal(XCmdBlockPtr,StringPtr);
  95. pascal void SetGlobal(XCmdBlockPtr,StringPtr globName,Handle globValue);
  96.  
  97. pascal Handle GetFieldByName(XCmdBlockPtr,Boolean cardFieldFlag,StringPtr);
  98. pascal Handle GetFieldByNum(XCmdBlockPtr,Boolean cardFieldFlag,short);
  99. pascal Handle GetFieldByID(XCmdBlockPtr,Boolean cardFieldFlag,short);
  100. pascal void SetFieldByName(XCmdBlockPtr,Boolean,StringPtr,Handle);
  101. pascal void SetFieldByNum(XCmdBlockPtr,Boolean,short,Handle);
  102. pascal void SetFieldByID(XCmdBlockPtr,Boolean,short,Handle);
  103.  
  104. pascal Boolean StringEqual(XCmdBlockPtr,Str31 *,Str31 *);
  105. pascal void ReturnToPas(XCmdBlockPtr,Ptr zeroStr,StringPtr pasStr);
  106. pascal void ScanToReturn(XCmdBlockPtr,Ptr *scanHndl);
  107. pascal void ScanToZero(XCmdBlockPtr,Ptr *scanHndl);
  108.